#include "stm32f10x.h"   
#include "Delay.h"
void KEY(void )
{
	RCC_APB2PeriphClockCmd (RCC_APB2Periph_GPIOB,ENABLE );
	
	GPIO_InitTypeDef S2;
	
	S2.GPIO_Mode =GPIO_Mode_IPU ;
	S2.GPIO_Pin =GPIO_Pin_1 |GPIO_Pin_11 ;
	S2.GPIO_Speed=GPIO_Speed_50MHz ;
	
	GPIO_Init (GPIOB,&S2);
}



uint8_t KEY_AN(void)
{
    static uint8_t last_key1 = 1, last_key2 = 1;  // 记录上一次状态
    uint8_t key1 = GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_1);   // 读取按键1
    uint8_t key2 = GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_11);  // 读取按键2
    
    if (last_key1 == 1 && key1 == 0)  // 按键1按下（下降沿检测）
    {
        Delay_ms(20);  // 消抖
        if (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_1) == 0)  // 确认按下
        {
            while (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_1) == 0);  // 等待释放
            return 1;
        }
    }
    
    if (last_key2 == 1 && key2 == 0)  // 按键2按下（下降沿检测）
    {
        Delay_ms(20);
        if (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_11) == 0)
        {
            while (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_11) == 0);
            return 2;
        }
    }
    
    last_key1 = key1;
    last_key2 = key2;
    return 0;  // 无按键按下
}
